package com.usian.travelSchedule;


import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
import java.util.List;

/**
 * TravelSchedule实体类，用于映射数据库中的travel_schedule表。
 * 该类表示行程相关的基础信息
 * @author 米西米西
 */
@Data
public class TravelSchedule {
    private Integer id;
    /**
     * 出发时间，对应数据库表中的departure_time字段，记录行程开始出发的具体时间点。
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date departureTime;
    /**
     * 行程日期开始时间，对应数据库表中的start_date字段，标志着此次行程正式开始的日期和时间。
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date startDate;
    /**
     * 结束时间，对应数据库表中的end_date字段，用于记录行程结束的日期和时间。
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endDate;
    /**
     * 行程名称，对应数据库表中的name字段，是对该次行程的一个简要命名，方便区分不同的行程安排。
     */
    private String name;
    /**
     * 用户id，对应数据库表中的user_id字段，用于唯一标识发起该行程的用户。
     */
    private Integer userId;
    /**
     * 定制师id，对应数据库表中的designer_id字段，代表负责制定此次行程计划的定制师的唯一标识。
     */
    private Integer designerId;
    /**
     * 景点id，对应数据库表中的detailed_schedule_id字段，关联到具体的景点信息，可能是此次行程中涉及的主要景点或者行程规划所围绕的核心景点相关标识。
     */
    private Integer detailedScheduleId;

    private Integer addressId;

    private Integer orderstatus;

//    开始时间和结束时间的总天数
    private Integer numDate;

    private List<ScenicSpotInfo> scenicSpotInfoList;

    public TravelSchedule(Integer id, Date departureTime, Date startDate, Date endDate, String name, Integer userId, Integer designerId, Integer detailedScheduleId) {
        this.id = id;
        this.departureTime = departureTime;
        this.startDate = startDate;
        this.endDate = endDate;
        this.name = name;
        this.userId = userId;
        this.designerId = designerId;
        this.detailedScheduleId = detailedScheduleId;
    }
}
